package com.example.duihua.service;

import com.example.duihua.entity.Message;

import java.util.List;

public interface MessageService {
    
    /**
     * 保存消息
     * @param message 消息对象
     * @return 保存后的消息对象
     */
    Message save(Message message);
    
    /**
     * 获取私聊消息历史
     * @param userId 当前用户ID
     * @param friendId 好友ID
     * @param page 页码
     * @param size 每页数量
     * @return 消息列表
     */
    List<Message> getPrivateMessages(Long userId, Long friendId, int page, int size);
    
    /**
     * 获取群聊消息历史
     * @param groupId 群组ID
     * @param page 页码
     * @param size 每页数量
     * @return 消息列表
     */
    List<Message> getGroupMessages(Long groupId, int page, int size);
    
    /**
     * 标记消息为已读
     * @param messageIds 消息ID列表
     * @return 是否更新成功
     */
    boolean markAsRead(List<Long> messageIds);
    
    /**
     * 撤回消息
     * @param messageId 消息ID
     * @param userId 用户ID（必须是消息发送者）
     * @return 是否撤回成功
     */
    boolean recallMessage(Long messageId, Long userId);
}